/********************************** (C) COPYRIGHT *******************************
 * File Name          : DEVICE.H
 * Author             : RZ
 * Version            : V1.00
 * Date               : 2017-5-17
 * Description        : USB驱动函数
 *******************************************************************************/

#ifndef __DEVICE_H__
#define __DEVICE_H__
#include "CH554.h"

/* 结构体定义 */
typedef struct
{
	uint8_t TipSwitch;
	uint8_t ContactIdentifier;
	uint16_t XPos; /* coordinate X */
	uint16_t YPos; /* coordinate Y */
	uint16_t ResolutionMulti;
} TTouchtPoint;

typedef struct
{
	uint16_t PressFlag;
	uint16_t XPosMax;
	uint16_t YPosMax;
	uint8_t XMirror;
	uint8_t YMirror;
	uint8_t SwapXY;
	float XResolution;
	float YResolution;
	uint8_t IrqFlag;
} TCtrlTouchPad;


#define UsbEnum USB_Enum_OK

extern uint16_t CTP_VID;      //可以主函数修改VID PID, 默认为沁恒公司保留VID_PID
extern uint16_t CTP_PID;
extern uint8_t MAX_POINT;     //最大支持点数,如需要支持XP系统,该值最大设置7, 如WIN7或其他系统最大支持10点
extern uint8_t USB_Enum_OK;
extern xdata TTouchtPoint GTouchPointData[10];      //按照最大支持的定义
extern xdata TCtrlTouchPad GCtrlTouchPadInfo;

extern void USBDeviceInit(void);
extern void UsbTouchDeviceInit(uint8_t AMaxPoint);
extern uint8_t Absolute_Up_Pack(TTouchtPoint *pTP, uint16_t PressFlag); // usb上传函数

#endif
